package com.bsj.power.common.config.auth;

import cn.dev33.satoken.config.SaTokenConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

/**
 * @author yinhao
 * @version 1.0
 * @description Sa-Token 配置类
 * @date 2024/4/17
 */
@Configuration
public class SaTokenConfigure {

    @Bean
    @Primary
    public SaTokenConfig getSaTokenConfigPrimary() {
        SaTokenConfig config = new SaTokenConfig();
        //禁用cookie
        config.setIsReadCookie(false);
        // token 名称（同时也是 cookie 名称）
        config.setTokenName("power-cookie");
        // token 有效期（单位：秒），30天
        config.setTimeout(30 * 24 * 60 * 60);
        // token 最低活跃频率（单位：秒），如果 token 超过此时间没有访问系统就会被冻结，默认-1 代表不限制，永不冻结
        config.setActiveTimeout(24 * 60 * 60);
//        config.setActiveTimeout(-1);
        // 是否允许同一账号多地同时登录（为 true 时允许一起登录，为 false 时新登录挤掉旧登录）
        config.setIsConcurrent(true);
        // 在多人登录同一账号时，是否共用一个 token （为 true 时所有登录共用一个 token，为 false 时每次登录新建一个 token）
        config.setIsShare(false);
        // 同一账号最大登录数量，-1代表不限 （只有在 isConcurrent=true，isShare=false 时此配置才有效）
        config.setMaxLoginCount(-1);
        // token 风格
        config.setTokenStyle("uuid");
        // 是否输出操作日志
        config.setIsLog(false);
        return config;
    }
}
